package mybatis.builder;

import mybatis.mapping.ParameterMapping;
import mybatis.parsing.TokenHandler;

import java.util.ArrayList;
import java.util.List;

/**
 * 参数映射关系处理器类
 *
 * @author richie696
 * @version 1.0
 * @since 2020/11/08
 */
public class ParameterMappingTokenHandler implements TokenHandler {

    private final List<ParameterMapping> parameterMappings = new ArrayList<>(10);

    /**
     * 处理转换SQL语句的方法
     *
     * @param content 待处理的原始语句
     * @return 返回处理后的SQL语句
     */
    @Override
    public String handleToken(String content) {
        parameterMappings.add(buildParameterMapping(content));
        return "?";
    }

    private ParameterMapping buildParameterMapping(String content) {
        return new ParameterMapping(content);
    }

    /**
     * 获取SQL语句参数映射关系列表的方法
     *
     * @return 返回SQL语句参数映射关系列表
     */
    public List<ParameterMapping> getParameterMappings() {
        return parameterMappings;
    }
}
